1) Backend API Documentation
1.1 نظرة عامة
الـ Backend هو القلب الرئيسي للنظام، ومسؤول عن:

إدارة المستخدمين

إدارة المتاجر

إدارة الكوبونات والعروض

إدارة الكاش باك

إدارة المفضلة

إدارة البنرات

إدارة الإشعارات

إدارة الدول واللغات

توفير REST APIs للويب والموبايل والداشبورد

1.2 التقنية المقترحة
Laravel 12

PHP 8.3+

MySQL

Laravel Sanctum أو JWT

Laravel Resource / API Resource

Queue + Jobs

Firebase Cloud Messaging للإشعارات

Storage للصور والشعارات

1.3 أنواع المستخدمين
Admin
إدارة النظام كامل

إضافة وتعديل وحذف

الاطلاع على الإحصائيات

إرسال إشعارات

التحكم في الإعدادات

User
التسجيل / تسجيل الدخول

تصفح المتاجر والكوبونات

نسخ الكوبونات

إضافة للمفضلة

تفعيل الكاش باك

إدارة الحساب

1.4 الوحدات الرئيسية
Auth

Users

Countries

Languages

Categories

Stores

Coupons

Cashback

Favorites

Banners

Notifications

Pages

Referrals

Settings

1.5 قاعدة البيانات
users
id

name

email

phone

password

country_id

language_id

referral_code

referred_by

wallet_balance

status

created_at

updated_at

admins
id

name

email

password

role

status

created_at

updated_at

countries
id

name_ar

name_en

code

currency

status

languages
id

name

code

direction

categories
id

name_ar

name_en

icon

image

sort_order

status

stores
id

category_id

name_ar

name_en

slug

logo

cover_image

description_ar

description_en

website_url

affiliate_url

cashback_enabled

cashback_rate

is_featured

status

sort_order

coupons
id

store_id

title_ar

title_en

description_ar

description_en

code

type (code / deal)

discount_type (percentage / fixed / text)

discount_value

start_date

end_date

usage_count

is_featured

status

cashback_offers
id

store_id

title_ar

title_en

rate

description_ar

description_en

terms_ar

terms_en

status

cashback_transactions
id

user_id

store_id

click_id

order_reference

amount

status (pending / approved / rejected / paid)

confirmed_at

paid_at

banners
id

title_ar

title_en

image

type (store / coupon / external / cashback)

reference_id

url

start_date

end_date

sort_order

status

favorites
id

user_id

type (store / coupon)

reference_id

notifications
id

title_ar

title_en

body_ar

body_en

type

reference_id

sent_to

status

pages
id

key

title_ar

title_en

content_ar

content_en

status

referrals
id

user_id

invited_user_id

reward_amount

status

settings
id

key

value

coupon_clicks
id

user_id

coupon_id

store_id

clicked_at

ip_address

device

1.6 العلاقات
كل Store ينتمي إلى Category

كل Coupon ينتمي إلى Store

كل Cashback Offer ينتمي إلى Store

كل Favorite يرتبط بمستخدم وعنصر

كل Banner يوجّه إلى Store أو Coupon أو رابط خارجي

كل Cashback Transaction ترتبط بمستخدم ومتجر

1.7 الـ API Structure
Base URL:

/api/v1
Authentication APIs
POST /auth/register
تسجيل مستخدم جديد

POST /auth/login
تسجيل الدخول

POST /auth/logout
تسجيل الخروج

GET /auth/me
بيانات المستخدم الحالي

POST /auth/forgot-password
استعادة كلمة المرور

Countries & Languages
GET /countries
GET /languages
Home APIs
GET /home
يرجع:

banners

featured_stores

featured_coupons

cashback_stores

categories

Categories APIs
GET /categories
GET /categories/{id}/stores
Stores APIs
GET /stores
فلاتر مقترحة:

category_id

featured

search

sort

GET /stores/{id}
GET /stores/{id}/coupons
GET /stores/{id}/cashback
Coupons APIs
GET /coupons
فلاتر:

search

store_id

category_id

featured

sort

GET /coupons/{id}
POST /coupons/{id}/copy
يسجل عملية نسخ الكوبون

POST /coupons/{id}/click
يسجل الضغط على العرض أو التوجيه للمتجر

Cashback APIs
GET /cashback/stores
GET /cashback/offers
POST /cashback/activate/{store_id}
GET /cashback/history
Favorites APIs
GET /favorites
POST /favorites/toggle
Body example:

{
  "type": "store",
  "reference_id": 5
}
Notifications APIs
GET /notifications
POST /notifications/read/{id}
Pages APIs
GET /pages/faq
GET /pages/terms
GET /pages/privacy
GET /pages/contact
Account APIs
GET /profile
PUT /profile
PUT /profile/language
PUT /profile/country
1.8 Admin APIs
Admin Auth
POST /admin/login

POST /admin/logout

Dashboard
GET /admin/dashboard/stats

Users
GET /admin/users

GET /admin/users/{id}

PUT /admin/users/{id}

DELETE /admin/users/{id}

Categories
GET /admin/categories

POST /admin/categories

PUT /admin/categories/{id}

DELETE /admin/categories/{id}

Stores
GET /admin/stores

POST /admin/stores

PUT /admin/stores/{id}

DELETE /admin/stores/{id}

Coupons
GET /admin/coupons

POST /admin/coupons

PUT /admin/coupons/{id}

DELETE /admin/coupons/{id}

Cashback
GET /admin/cashback/offers

POST /admin/cashback/offers

PUT /admin/cashback/offers/{id}

DELETE /admin/cashback/offers/{id}

Banners
GET /admin/banners

POST /admin/banners

PUT /admin/banners/{id}

DELETE /admin/banners/{id}

Notifications
GET /admin/notifications

POST /admin/notifications/send

Pages
GET /admin/pages

PUT /admin/pages/{id}

Settings
GET /admin/settings

PUT /admin/settings

1.9 صلاحيات الأدمن
super_admin

content_manager

marketing_manager

support_agent

1.10 Business Logic مهم
عند نسخ الكوبون يتم تسجيل usage_count

عند الضغط على تسوق الآن يتم تسجيل click tracking

عند تفعيل الكاش باك يتم إنشاء session أو tracking log

المفضلة تكون للمستخدم المسجل فقط

البنرات مرتبطة بتاريخ بداية ونهاية

الكوبونات يمكن إخفاؤها تلقائيًا عند الانتهاء

1.11 Validation Rules
اسم المتجر مطلوب بالعربي أو الإنجليزي

اللوجو مطلوب عند إنشاء متجر

الكوبون type لازم يكون code أو deal

end_date لازم تكون أكبر من start_date

discount_value غير سالب

country و language يجب أن يكونا صالحين

1.12 Non Functional Requirements
API response time سريع

pagination لكل القوائم

filtering و sorting

secure authentication

log activities

image upload management

multilingual support

scalable architecture

